package models

import (
	"backendChat/utils"
	"fmt"

	"gorm.io/gorm"
)

// 人员关系
type Contact struct {
	gorm.Model
	OwnerId  uint   `json:"ownerId"`  // 谁的关系信息
	TargetId uint   `json:"targetId"` // 对应的谁
	ChatType string `json:"chatType"` // 聊天类型 1.私聊 2.群聊 3.广播
	Desc     string `json:"desc"`     // 描述
}

// 获取联系人
func Contacts(userId uint) []UserBasic {
	contacts := make([]Contact, 0)
	contactIds := make([]uint64, 0)
	utils.DB.Where("owner_id = ? and chat_type=1", userId).Find(&contacts)
	fmt.Println(contacts)
	for _, v := range contacts {
		contactIds = append(contactIds, uint64(v.TargetId))
	}
	users := make([]UserBasic, 0)
	utils.DB.Where("id in ?", contactIds).Find(&users)
	return users
}

// 通过用户名获取用户信息-模糊查询
func FindVagueUserByName(name string) []*UserBasic {
	users := make([]*UserBasic, 0)
	utils.DB.Where("name LIKE ?", "%"+name+"%").Find(&users)
	return users
}

// 添加好友
func CreateContact(contact Contact) {
	utils.DB.Create(&contact)
}
